var inputOk=false;

$(window).load(function(){
  
	function isInputCompleted() {
    if ($('#src_id').val()!=0 && $('#dest_id').val()!=0) {
      inputOk=true;
      $('#rasp_button_1').animate({height:32},200);
      $('#rasp_button_2').animate({height:32},200);
    }
  }

  function liFormat(row,i,num) {
    return '<div style="text-align:left; float:left"><font color="#ffffff">'+row[1]+'</font></div><div style="text-align:right"><font color="#aaaaaa"><i>'+row[2]+'</i></font></div>';
  }
  
  $('#src_name').keyup( function(event) {
     if ($('#src_name').val()!=$('#src_old').val()) {
       $('#src_name').css('color','#880000');
       $('#src_id').val(0);
       inputOk=false;
       $('#rasp_button_1').animate({height:0},200);
       $('#rasp_button_1').animate({height:0},200);
       $('#rasp_calendar').animate({height:0},300, function() { $('#rasp_calendar').html(''); });
       $('#result_places').animate({height:0},300, function() { $('#result_places').html(''); });
       $('#result_raspis').animate({height:0},300, function() { $('#result_raspis').html(''); });
     }
     $('#src_old').val($('#src_name').val());
  })
  .autocomplete('/getst.php', {
		formatItem:liFormat,
		minChars:3,
		scroll:true,
		scrollHeight:200,
		width:450
    }).result(function(event, data, formatted) {
			if (data) {
				$('#src_id').val(data[0]);
				$('#src_name').val(data[1]);
        $('#src_name').css('color','#008800');
        $('#src_old').val($('#src_name').val());
        isInputCompleted();
			}
		}
  );
  
  $('#dest_name').keyup( function(event) {
     if ($('#dest_name').val()!=$('#dest_old').val()) {
       $('#dest_name').css('color','#880000');
       $('#dest_id').val(0);
       inputOk=false;
       $('#rasp_button_1').animate({height:0},200);
       $('#rasp_button_2').animate({height:0},200);
       $('#rasp_calendar').animate({height:0},300, function() { $('#rasp_calendar').html(''); });
       $('#result_places').animate({height:0},300, function() { $('#result_places').html(''); });
       $('#result_raspis').animate({height:0},300, function() { $('#result_raspis').html(''); });
     }
     $('#dest_old').val($('#dest_name').val());
  })
  .autocomplete('/getst.php', {
		formatItem:liFormat,
		minChars:3,
		scroll:true,
		scrollHeight:200,
		width:450
    }).result(function(event, data, formatted) {
			if (data) {
				$('#dest_id').val(data[0]);
				$('#dest_name').val(data[1]);
        $('#dest_name').css('color','#008800');
        $('#dest_old').val($('#dest_name').val());
        isInputCompleted();
			}
		}
  ); 

  $('#rasp_button_1').mousedown( function() { $('#rasp_button_1').css('background','url(/img/rasp_button_1a.png)') })
                     .mouseup( function() { $('#rasp_button_1').css('background','url(/img/rasp_button_1.png)') })
                     .mousemove( function() { $('#rasp_button_1').css({'background':'url(/img/rasp_button_1b.png)','cursor':'pointer'}) })
                     .mouseleave( function() { $('#rasp_button_1').css({'background':'url(/img/rasp_button_1.png)','cursor':'default'}) })
                     .click( function() { 
                        $('#result_raspis').animate({height:0},300, function() { $('#result_raspis').html(''); });       
                        $('#time_selected').val($('#time').val());
                        show_calendar();
                        $('#cl').width($('#cl2').width());
                        $('#rasp_calendar').animate({height:$('#cl').height()+2},300);
                        load_places();
                      });

  $('#rasp_button_2').mousedown( function() { $('#rasp_button_2').css('background','url(/img/rasp_button_2a.png)') })
                     .mouseup( function() { $('#rasp_button_2').css('background','url(/img/rasp_button_2.png)') })
                     .mousemove( function() { $('#rasp_button_2').css({'background':'url(/img/rasp_button_2b.png)','cursor':'pointer'}) })
                     .mouseleave( function() { $('#rasp_button_2').css({'background':'url(/img/rasp_button_2.png)','cursor':'default'}) })
                     .click( function() { 
                        $('#rasp_calendar').animate({height:0},300, function() { $('#rasp_calendar').html(''); });       
                        $('#result_places').animate({height:0},300, function() { $('#result_places').html(''); });
                        load_raspis();
                      });
  
  $('#dest_name').focus();
  $('#src_name').css('color','#008800');
  $('#dest_name').css('color','#008800');
  $('#dest_name').css('color','#880000');
 
  $.post('weather.php', function(data) {
    $('#weather').html(data);
  });
  load_rasp(); // текущие отправления
  
});

//------------------------------------------------------
function show_calendar() {
  var res='<div id="cl" style="text-align:center; font-size: 12px">Выберите дату отправления:';
  var dt=$('#time').val().split(".");
  var sdt=$('#time_selected').val().split(".");
  var dt_last=new Date(parseInt(dt[0]),parseInt(dt[1]),0);                            // дата последнего числа текущего месяца (кол-во дней в месяце)
  res+='<table id="cl2" cellpadding="0" cellspacing="5"><tr><td valign="top">';
  if (parseInt(dt[2])+15<=dt_last.getDate()) {
    res+=makeCalendar(parseInt(dt[2]),parseInt(dt[1])-1,parseInt(dt[0]),parseInt(dt[2])+15,parseInt(sdt[2]));
  } else {
    res+=makeCalendar(parseInt(dt[2]),parseInt(dt[1])-1,parseInt(dt[0]),dt_last.getDate(),( parseInt(sdt[1])==parseInt(dt[1]) ? parseInt(sdt[2]) : 0 ));
    res+='</td><td valign="top">';
    var dt_next=new Date(parseInt(dt[0]),parseInt(dt[1])-1,parseInt(dt[2])+15);
    res+=makeCalendar(1,dt_next.getMonth(),dt_next.getFullYear(),dt_next.getDate(),( parseInt(sdt[1])-1==dt_next.getMonth() ? parseInt(sdt[2]) : 0 ));
  }
  res+='</td></tr></table></div>';
  $('#rasp_calendar').html(res);

  //------------------------------------------------------
  function makeCalendar(day,mon,year,day2,selday) {
    var months=new Array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь");
    var r='<div style="width:175px"><div class="cl_head"><div id="cl_month">'+months[mon]+' '+year+'</div>';
    r+='<table cellpadding="0" cellspacing="0" border="0" class="cl_days">';
    r+='<tr><td>пн</td><td>вт</td><td>ср</td><td>чт</td><td>пт</td><td style="color: #cc0000">сб</td><td style="color: #cc0000">вс</td></tr>';
    r+='</table></div>';
    r+='<table cellpadding="0" cellspacing="0" border="0"><tr>';
    var dt_first=new Date(year,mon,1);                            // дата первого дня текущего месяца
    var day_first=dt_first.getDay()==0 ? 7 : dt_first.getDay();   // день недели первого числа текущего месяца
    for (var ii=1; ii<day_first; ii++) { r+='<td class="cl_day"></td>'; }
    var dt_ll=new Date(dt[0],dt[1],0);                            // дата последнего числа текущего месяца (кол-во дней в месяце)
    for (var dd=1; dd<=dt_ll.getDate(); dd++) {
      r+='<td class="cl_day" style="';
      if (selday==dd) { r+='background:url(/img/calend_selected.png);'; };
      if (dd>=day && dd<=day2) {
        r+='font-weight:bold; cursor: pointer; color: #'+(selday==dd ? 'ffffff' : '0000ff')+';"' ;
        r+='onclick="select_date('+dd+','+(mon+1)+','+year+');">'+dd+'</td>';
      } else {
        r+='">'+dd+'</td>';
      }
      ii++;
      if (ii==8) {
        ii=1;
        r+='</tr><tr>';
      }
    }
    if (ii<8) for (var dd=ii; dd<8; dd++) r+='<td class="cl_day"></td>';
    r+='</tr></table></div>';
    return r;
  }
}

//------------------------------------------------------
function select_date(d1,m1,y1) {
  $('#time_selected').val(y1+'.'+m1+'.'+d1+'.0.0.0');
  show_calendar();
  $('#cl').width($('#cl2').width());
  load_places();
}  

//------------------------------------------------------
  function load_places() {
    $('#result_places').html('<img src="/img/news_loading.gif">');
    $('#result_places').animate({height:30},300);
    $('#result_places').show();
    var dd=$('#time_selected').val().split('.');
    var ss=(dd[2]<10?'0':'')+dd[2]+'.'+(dd[1]<10?'0':'')+dd[1]+'.'+dd[0];
    $.post("getplaces.php", {a:$('#src_id').val(),
                             b:$('#dest_id').val(),
                             c:ss },
      function (data) {
        if (data.length>0 && $('#result_places').height()>0) {
          $('#result_places').html(data);
          $('#result_places').animate({height:$('#pl_table').height()+1},500);
        }
      }
    );
  };

//------------------------------------------------------
  function load_route(route_id) {
    var td=$('#r'+route_id);
    var route_id_orig=$('#rv'+route_id).val();
    if (td.height()==0) {
      td.html('<div style="margin-top: 10px"><img src="/img/news_loading.gif"></div>');
      $('#result_places').animate({height:'+=31'},200);
      td.animate({height:30},200);
      $.post("getroute.php", {a:route_id,
                              b:route_id_orig,
                              c:$('#src_name').val(),
                              d:$('#dest_name').val()},
        function (data) {
          if (data.length>0) {
            td.html(data);
            $('#result_places').animate({height:'+='+($('#rr'+route_id).height()+16-31)},300);
            td.animate({height:$('#rr'+route_id).height()+16},300);
          }
        }
      );
    } else {
      $('#result_places').animate({height:'-='+($('#rr'+route_id).height()+16)},300);
      td.animate({height:0}, 300, function() { td.html(''); } );
    }
  };
  
//------------------------------------------------------
  function load_raspis() {
    $('#result_raspis').html('<img src="/img/news_loading.gif">');
    $('#result_raspis').animate({height:30},300);
    $('#result_raspis').show();
    $.post("getrasp.php", {a:$('#src_id').val(),
                           b:$('#dest_id').val()},
      function (data) {
        if (data.length>0 && $('#result_raspis').height()>0) {
          $('#result_raspis').html(data);
          $('#result_raspis').animate({height:$('#rs_table').height()+1},500);
        }
      }
    );
  };

//------------------------------------------------------
  function load_route2(route_id) {
    var td=$('#s'+route_id);
    var route_id_orig=$('#sv'+route_id).val();
    if (td.height()==0) {
      td.html('<div style="margin-top: 10px"><img src="/img/news_loading.gif"></div>');
      $('#result_raspis').animate({height:'+=31'},200);
      td.animate({height:30},200);
      $.post("getroute2.php", {a:route_id,
                               b:route_id_orig,
                               c:$('#src_name').val(),
                               d:$('#dest_name').val()},
        function (data) {
          if (data.length>0) {
            td.html(data);
            $('#result_raspis').animate({height:'+='+($('#rs'+route_id).height()+16-31)},300);
            td.animate({height:$('#rs'+route_id).height()+16},300);
          }
        }
      );
    } else {
      $('#result_raspis').animate({height:'-='+($('#rs'+route_id).height()+16)},300);
      td.animate({height:0}, 300, function() { td.html(''); } );
    }
  };
